#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
/*
 * Copyright © 2014, Finium Sdn Bhd, All Rights Reserved
 * 
 * AppConstants.java
 * Modification History
 * *************************************************************
 * Date				Author						Comment
 * Feb 09, 2012		Venkaiah Chowdary Koneru	Created
 * *************************************************************
 */
package ${package};

import java.util.regex.Pattern;

/**
 * Declare the application/platform wide Constants.
 * Do not include module specific constants in here. 
 * Instead maintain a module specific constants class in each and every module.
 * 
 * @author Venkaiah Chowdary Koneru
 */
public final class AppConstants
{
    /**
     * to use in the DAO HQL queries
     */
    public static final String FROM = "from ";

    /**
     * to use in <code>@SuppressWarnings</code> annotations.
     */
    public static final String SUPPRESS_WARNINGS_UNCHECKED = "unchecked";

    /**
     * to use in <code>@SuppressWarnings</code> annotations.
     */
    public static final String SUPPRESS_WARNINGS_RAWTYPES = "rawtypes";

    /**
     * UTF-8
     */
    public static final String UTF8 = "UTF-8";

    /**
     * maximum file upload size constant
     */
    public static final long MAX_FILE_UPLOAD_SIZE = 512000;

    /**
     * alphanumeric with size 3-80 characters validation constant
     */
    public static final Pattern VALIDATION_PATTERN_ALPHANUMERIC_SIZE_3_TO_80 = Pattern
            .compile("[A-Za-z0-9]{3,80}+${symbol_dollar}");

    /**
     * alphanumeric with size 3-100 characters validation constant
     */
    public static final Pattern VALIDATION_PATTERN_ALPHANUMERIC_SIZE_3_TO_100 = Pattern
            .compile("[A-Za-z0-9]{3,100}+${symbol_dollar}");

    /**
     * url validation constant
     */
    public static final Pattern VALIDATION_URL = Pattern
            .compile("^(https?|ftp|file)://.+${symbol_dollar}");

    public static final int MIN_1 = 1;
    public static final int MIN_3 = 3;
    public static final int MIN_10 = 10;
    public static final int MAX_10 = 10;
    public static final int MAX_80 = 80;
    public static final int MAX_100 = 100;
    public static final int MAX_150 = 150;
    public static final int MAX_200 = 200;
    public static final int MAX_250 = 250;
    public static final int MAX_255 = 255;
    public static final int MAX_500 = 500;
    public static final int MAX_5000 = 5000;

    public static final String MARSHALLER_OR_SERIALIZER_DATE_FORMAT = "MM-dd-yyyy hh:mm:ss a";

    /**
     * Constructor. Private to prevent unnecessary instantiation.
     */
    private AppConstants()
    {
    }
}
